package gameComponents;

import java.util.List;

public class Jugador extends Thread {

	private String equipo;
	private Celda celdaActual;
	private List<Movimiento> movimientos;
	private String nombre;
	
	

	public Jugador(String nombre,String equipo, Celda celda, List<Movimiento> movs){
		this.setEquipo(equipo);
		this.setNombre(nombre);
		this.setCeldaActual(celda);
		this.setMovimientos(movs);
		for(Movimiento each : this.getMovimientos()){
			each.setJugador(this);
		}
		celda.setJugador(this);
	}
	
	
	
	public String getNombre() {
		return nombre;
	}



	public void setNombre(String nombre) {
		this.nombre = nombre;
	}



	public Celda getCeldaActual() {
		return celdaActual;
	}

	public void setCeldaActual(Celda celdaActual) {
		this.celdaActual = celdaActual;
	}

	public List<Movimiento> getMovimientos() {
		return movimientos;
	}

	public void setMovimientos(List<Movimiento> movimientos) {
		this.movimientos = movimientos;
	}

	public String getEquipo() {
		return equipo;
	}

	public void setEquipo(String equipo) {
		this.equipo = equipo;
	}
	
	public void mover(Movimiento mov) throws InterruptedException{
		mov.ejecutar();
	}

	public void mover(boolean hayTesoroMio, Celda celdaSiguiente){
		if(!hayTesoroMio){
			this.getCeldaActual().liberar();
			this.setCeldaActual(celdaSiguiente);
			celdaSiguiente.ocupar(this);
		}
	}
	
	
	public void run(){
		for(Movimiento m : this.getMovimientos()){
			try {
				this.mover(m);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
	
//	
//	public void moverADerecha(boolean haytesoroMio, Celda celda) {
//		if(haytesoroMio){return;}
//		this.getCeldaActual().liberar();
//		this.setCeldaActual(celda);
//		celda.ocupar();
//		
//	}
//
//	public void moverAdelante(boolean haytesoroMio, Celda celda) {
//		if(haytesoroMio){return;}
//		this.getCeldaActual().liberar();
//		this.setCeldaActual(celda);
//		celda.ocupar();
//		
//	}	
}
